One increasingly popular form of networking may generally be referred to as remote presentation systems, which can use protocols such as Remote Desktop Protocol (RDP) and Independent Computing Architecture (ICA) to share a desktop and other applications executing on a server with a remote client. Such computing systems typically transmit the keyboard presses and mouse clicks or selections from the client to the server, relaying the screen updates back in the other direction over a network connection (e.g., the Internet). As such, the user has the experience as if his or her machine is operating entirely locally, when in reality the client device is only sent screenshots of the desktop or applications as they appear on the server side.
The user graphics and video may be rendered at a server for each user. The resulting bitmaps may then be sent to the client for display and interaction. In some systems the graphics accelerator (such as a GPU) may also be virtualized. For example, rather than modeling a complete hardware GPU, the GPU may be virtualized and thus provide for an abstracted software-only GPU that presents a software interface different from that of the underlying hardware. By providing a virtualized GPU, a virtual machine may enable a rich user experience with, for example, accelerated 3D rendering and multimedia, without the need for the virtual machine to be associated with a particular GPU product.
In some cases a virtualized device on the child partition such as a virtualized GPU may transfer large amount of data to the host partition in order to emulate a video capable card. Due to the limitations of standard virtual machine bus mechanisms, the transfer of such large amounts of data may impose burdens on the system design and performance.